<template>
  <div id="container"></div>
</template>
<script>
import AMap from "@amap/amap-jsapi-loader";

export default {
  name: "map-view",
  data() {
    return {
      map: null,
      id: 'ccc',
      s: true,
      patternArr: [{ name: '探测模式', color: '#F1BF35' }, { name: '传输模式', color: '#2BA0C8' }, { name: '公共模式', color: '#39BCB8' }, { name: '业务模式', color: '#2BA0C8' }],
      stateArr: [{ name: 'NEW新登录', color: '#CD6868' }, { name: '离线', color: '#1E2537' }]
    }
  },
  mounted() {
    this.initAMap();

  },
  unmounted() {
    this.map?.destroy();
  },
  methods: {
    initAMap() {
      AMap.load({
        key: "679662feaf9eea69c144ec80085dc2b1", // 申请好的Web端开发者Key，首次调用 load 时必填
        version: "2.0", // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
        plugins: [], // 需要使用的的插件列表，如比例尺'AMap.Scale'等
      })
        .then((AMap) => {
          this.map = new AMap.Map("container", {
            // 设置地图容器id
            viewMode: "3D", // 是否为3D地图模式
            zoom: 10, // 初始化地图级别
            center: [116.397428, 39.90923], // 初始化地图中心点位置
            lang: 'zh_cn',  //设置地图语言类型
          });


          // 构造点标记
          var marker = new AMap.Marker({
            position: [116.397428, 39.90923],
            zIndex: 101,
            // content: this.drawingIcon(1001, '重庆渝北电台', 1, 0),
            zooms:[1,20]
          });

          // 在合适的位置添加以下代码
          marker.on('rightclick', function (e) {
            // 在控制台打印右键点击事件的信息
            console.log('Marker right-clicked:', e);
            // 在这里可以执行你想要的操作
          });

      

          // 构造矢量圆形
          var circle = new AMap.Circle({
            center: new AMap.LngLat("116.397428", "39.90923"), // 圆心位置
            radius: 1000,  //半径
            strokeColor: "#F33",  //线颜色
            strokeOpacity: 1,  //线透明度
            strokeWeight: 3,  //线粗细度
            fillColor: "#ee2200",  //填充颜色
            fillOpacity: 0.35, //填充透明度
            content: this.drawingIcon(1001, '重庆渝北电台', 1, 0),
          });

          this.map.on('zoomend', () => {//缩放结束时触发
            // 获取当前缩放级别
            var currentZoom = this.map.getZoom(10);//num1.toFixed(2)
            marker.setContent(this.drawingIcon(1001, '重庆渝北电台', 1, 0,currentZoom));
            console.log(currentZoom);
          });


            // 将以上覆盖物添加到地图上
          // 单独将点标记添加到地图上
          this.map.add(marker);
          // add方法可以传入一个覆盖物数组，将点标记和矢量圆同时添加到地图上
          this.map.add([marker, circle]);

        })
        .catch((e) => {
          console.log(e);
        });
    },
    drawingIcon(id, name, pattern, state,size) {

      const num = (size * 0.01).toFixed(2);

      const divId = '<div class="map-id">' + id + '</div>'
      const divImg = '<img src="https://vdata.amap.com/icons/b18/1/2.png"/>'
      const divNmae = (state == 0) ? '<div style="background:#9A9DAA">' + name + '</div>' : '<div >' + name + '</div>'
      const divPattern = '<div style="background:' + this.patternArr[pattern].color + '">' + this.patternArr[pattern].name + '</div>'
      const divState = (state == 0 || state == 1) ? '<div style="background:' + this.stateArr[state].color + '">' + this.stateArr[state].name + '</div>' : '';
      const box = '<div class="map-icon"  style ="transform: scale('+num+','+num+');" ><div class="map-img">' + divImg + divId +
        '</div><div class="map-text">' + divNmae + divPattern + divState + '</div></div>'
        '</div><div class="map-text">' + divNmae + divPattern + divState + '</div></div>'
      console.log(box);
      return box;
    }
  },
};
</script>
<style scoped>
#container {
  width: 100%;
  height: 800px;
}
</style>
